package com.sunwayworld.basemodule.business.prefolder.resource;

import com.sunwayworld.basemodule.business.prefolder.bean.LimsPreFolderBean;
import com.sunwayworld.basemodule.business.prefolder.service.LimsPreFolderService;
import com.sunwayworld.basemodule.samplemanage.sample.bean.LimsSampleDerivativeBean;
import com.sunwayworld.framework.data.page.Page;
import com.sunwayworld.framework.restful.data.RestJsonWrapperBean;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.sunwayworld.framework.support.base.resource.GenericResource;
import com.sunwayworld.framework.support.choosable.resource.GenericChoosableResource;

@RequestMapping("/secure/basemodule/business/pre-folders")
public interface LimsPreFolderResource extends GenericResource<LimsPreFolderService, LimsPreFolderBean, Long>, GenericChoosableResource<LimsPreFolderService, LimsPreFolderBean, Long> {

    @PostMapping("/submit")
    void submit(RestJsonWrapperBean wrapperBean);

    @PostMapping("/issue/historical-task")
    void issueOfHistoricalTasks(RestJsonWrapperBean wrapperBean);

    // 混样任务选择
    @PostMapping("/choose/mix-task")
    Page<LimsSampleDerivativeBean> selectMixTask(RestJsonWrapperBean wrapperBean);

    // 混样任务下发
    @PostMapping("/issue/mix-task")
    void issueOfMixTask(RestJsonWrapperBean wrapperBean);


    @PostMapping("/issue/sample/queries")
    Page<LimsPreFolderBean> selectIssueSamplePagination(RestJsonWrapperBean wrapper);

    @PostMapping("/operationBatch/add/tasks")
    void addOperationBatchTasks(RestJsonWrapperBean wrapper);

    @PostMapping("/operationBatch/remove/tasks")
    void removeOperationBatchTasks(RestJsonWrapperBean wrapper);

    @PostMapping("/submit/operationBatch")
    void submitOperationBatch(RestJsonWrapperBean wrapper);

    @PostMapping("/separateSample")
    void separateSample(RestJsonWrapperBean wrapper);

    @PostMapping("/stop")
    void stop(RestJsonWrapperBean wrapperBean);

    @PostMapping("/history/sample/queries")
    Page<LimsPreFolderBean> selectForHistory(RestJsonWrapperBean wrapper);

    @PostMapping("/remove")
    void remove(RestJsonWrapperBean wrapperBean);
}
